package com.ce.pms.charge.dao;

import java.util.List;
import java.util.Set;

import com.ce.pms.base.dao.IPmsBaseDao;
import com.ce.pms.charge.model.PeriodDomain;

public interface IPeriodDao extends IPmsBaseDao<PeriodDomain> {
	/**
	 * 方法描述: 根据收费收费管理区ID和收费周期名称查询实体方法
	 * @author 胡煦
	 * Create on:2008-9-26
	 * @param chargePrecinctId，period
	 * @return PeriodDomain
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public PeriodDomain findPeriodByName(Long chargePrecinctId,String period);
	/**
	 * 方法描述: 根据楼栋查询当前有效的收费周期实体
	 * @author 胡煦
	 * Create on:2008-8-18
	 * @param
	 * @return PeriodDomain
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public PeriodDomain findAvailPeriodBy(Long buildingId);

	/**
	 * 功能描述:根据收费周期状态查询收费周期  <br>
	 * @param validity  0:无效(已月结,按收费周期分组)  1:有效(未月结不分组) null:所有的收费周期，并以收费周期分组
	 * @return
	 * Create author:黄彦军 <br>
	 * Create on:2008-8-26  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<PeriodDomain> findPeriodByValidity(String validity);

	/**
	 * 功能描述:根据收费管理区查询收费周期   <br>
	 * @param PrecinctId  管理区ID
	 * @param validity  收费周期有效性 0:无效  1:有效  null:查询全部
	 * @return
	 * Create author:黄彦军 <br>
	 * Create on:2008-9-4  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public List<PeriodDomain> findPeriodByPrecinct(Long PrecinctId,String validity);

	/**
	 * 功能描述:取得当前收费周期，与权限配合使用才有实际意义<br>
	 * @return<br>
	 * Create author:罗军林<br>
	 * Create on:2008-9-16<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public PeriodDomain queryCurrentPeriod();

	/**
	 * 功能描述:根据收费周期ID查询收费周期<br>
	 * @param ids
	 * @return<br>
	 * Create author:罗军林<br>
	 * Create on:2008-9-25<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public List<PeriodDomain> queryPeriodByIds(Set<Long> ids);


}
